export interface MediaItem {
  id: string
  title: string
  url: string
  type: 'video' | 'audio'
  thumbnail?: string
  duration?: number
  quality?: string[]
  subtitles?: Subtitle[]
  metadata?: Record<string, any>
}

export interface Subtitle {
  language: string
  url: string
  label: string
}

export interface PlaybackHistory {
  mediaId: string
  lastPosition: number
  lastPlayed: Date
}

export interface AudioEffect {
  id: string
  name: string
  description: string
  settings: Record<string, any>
}

export interface CloudProvider {
  id: string
  name: string
  icon: string
  color: string
}

export interface CloudFile {
  id: string
  name: string
  size: number
  type: string
  url?: string
  thumbnail?: string
  modifiedTime: Date
}

export interface BatchItem {
  id: string
  url: string
  title?: string
  status: 'pending' | 'loading' | 'ready' | 'error'
  error?: string
  media?: MediaItem
}
